package com.pubinfo.passbook.common.service.mss;

import com.pubinfo.passbook.common.entity.TPassbook;
import com.pubinfo.passbook.common.entity.TSourceArtificial;
import com.pubinfo.passbook.common.entity.TWiteoffInstance;
import com.pubinfo.passbook.common.model.bo.witeoff.MedicineOnJobOrRetireBO;
import com.pubinfo.passbook.common.model.dto.witeoff.MedicineOnJobOrRetireDTO;
import com.pubinfo.passbook.common.model.http.request.GetSapNumber.GetSapNumberItems;
import com.pubinfo.passbook.common.model.vo.base.JsonResult;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface HttpService {
  
  //获取报账组织信息
  // WriteoffBaseDataMessage getWriteoffBaseDataItem(List<GetWriteoffBaseDataItems> account);
  
  // String sendPost(String xml, String url);
  
  //在职及供属医药费报账 普通报账接口
  JsonResult<String> medicineOnJobAutoCreateWriteoff(MedicineOnJobOrRetireDTO jobDTO, Boolean isCheckPermission, String acctId);
  
  /**
   * 获取当前用户所属区县id
   *
   * @return
   */
  String userNsrsbhByAcct(String acct);
  
  /**
   * 当报账单发起失败时根据报账单id再次发起报账
   *
   * @param witeoffInstanceId
   * @return
   */
  void createWriteoffAgain(TWiteoffInstance tWiteoffInstance);
  
  /**
   * 手工单据报账接口
   *
   * @param artificials
   * @return
   */
  JsonResult<String> manualData(List<TSourceArtificial> artificials, Boolean isShow,String desc);
  
  /**
   * 自动报账医药费接口
   *
   * @param jobDTO
   * @param isCheckPermission
   */
  void autoMedicineOnJobAutoCreateWriteoff(MedicineOnJobOrRetireDTO jobDTO, Boolean isCheckPermission);

  void updateWiteoffInstance(MedicineOnJobOrRetireDTO jobDTO,String id);
  
  //退休员工医药费报账
  //JsonResult<String> medicineRetireAutoCreateWriteoff(MedicineOnJobOrRetireDTO jobDTO) throws IOException, UnirestException;
  
  //社会团体会费报账
//  JsonResult<String> groupMembershipDuesAutoCreateWriteoff(EnvironmentalOrGroupMembershipDuesDTO duesDTO);
  
  //环保费报账
//  JsonResult<String> environmentalAutoCreateWriteoff(EnvironmentalOrGroupMembershipDuesDTO environmentalDTO);

  List<TPassbook> sendTo(MedicineOnJobOrRetireDTO jobDTO, Boolean isShow);

  //获取sap标准凭证信息
  String GetSapNumber(List<GetSapNumberItems> account) ;

  Boolean postByOtherSystemMainId(String otherSystemMainId);
  /**
   * 计算当年未报销票据合计金额
   * @param acct
   * @param type
   * @return
   */
  String passbookAmountSum(String acct,String type);
}
